package com.yunhe.abnormal.repository.base;

import com.yunhe.abnormal.domain.base.AlarmNotifyConfig;

import java.util.List;

/**
 * 异常通知配置Session实现类
 * @author liuronglei
 */
public interface AlarmNotifyConfigSession {

    /**
     * 根据条件获得异常通知配置列表
     * @param type 类型
     * @param alarmLevelId 异常级别ID
     * @param alarmNotifyTypeName 异常通知类型name
     * @param firmId 单位ID
     * @param userId 用户ID
     */
    List<AlarmNotifyConfig> search(Integer type, Long alarmLevelId, String alarmNotifyTypeName, Long firmId, Long userId);

    /**
     * 解绑异常通知配置所有关系
     * @param alarmNotifyConfigId 异常通知配置ID
     */
    void unBindRelat(Long alarmNotifyConfigId);

    /**
     * 绑定异常通知配置所有关系
     * @param alarmNotifyConfig 异常通知配置对象
     */
    void bindRelat(AlarmNotifyConfig alarmNotifyConfig);

    /**
     * 根据用户ID删除异常通知配置
     * @param userId 用户ID
     */
    void deleteNotifyConfigByUserId(Long userId);

    /**
     * 根据用户ID删除异常短信通知配置
     * @param userId 用户ID
     */
    void deleteSmsConfigByUserId(Long userId);

    /**
     * 根据单位ID删除异常通知配置
     * @param firmId 单位ID
     */
    void deleteByFirmId(Long firmId);
}
